Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

test[next]: Disable iterator tests on DaCe GTIR backend #1768

Merged
merged 1 commit into from
Dec 4, 2024

Conversation

edopao
Copy link
Contributor

@edopao edopao commented Dec 4, 2024

There are 2 places where the program_processor fixture used in tests is configured:

tests/next_tests/integration_tests/feature_tests/ffront_tests/ffront_test_utils.py
tests/next_tests/unit_tests/conftest.py

and there are four DaCe backends:

    DACE_CPU = "gt4py.next.program_processors.runners.dace.run_dace_cpu"
    DACE_GPU = "gt4py.next.program_processors.runners.dace.run_dace_gpu"
    DACE_CPU_NO_OPT = "gt4py.next.program_processors.runners.dace.run_dace_cpu_noopt"
    DACE_GPU_NO_OPT = "gt4py.next.program_processors.runners.dace.run_dace_gpu_noopt"

The DACE_CPU and DACE_GPU backends will be the default backends, that also apply the DaCe optimization pipeline. However, these backends are disabled for now because we are awaiting #1639.

The DACE_CPU_NO_OPT and DACE_GPU_NO_OPT apply the lowering to SDFG but do not run the optimization pipeline. These backends are currently enabled in GT4Py tests.

However, we observed failures in some iterator tests controlled by the program_processor fixture in tests/next_tests/unit_tests/conftest.py, once DACE_CPU is enabled. In this PR, we are disabling such tests: we will address these issues in a separate PR.

@havogt
Copy link
Contributor

havogt commented Dec 4, 2024

Why is main green before this change?

@edopao
Copy link
Contributor Author

edopao commented Dec 4, 2024

Why is main green before this change?

Because there are 4 DaCe backends:

    DACE_CPU = "gt4py.next.program_processors.runners.dace.run_dace_cpu"  # disable on main, awaiting DaCe autoopt
    DACE_GPU = "gt4py.next.program_processors.runners.dace.run_dace_gpu"  # same
    DACE_CPU_NO_OPT = "gt4py.next.program_processors.runners.dace.run_dace_cpu_noopt"  # enabled
    DACE_GPU_NO_OPT = "gt4py.next.program_processors.runners.dace.run_dace_gpu_noopt"  # enabled

The old DaCe ITIR backend was also enabled in tests/next_tests/unit_tests/conftest.py, while the new GTIR backend is not. BTW, the Embedded GTIR is not enabled either.

Copy link
Contributor

@havogt havogt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please add the info about the ALL skip marker in the PR description and include it in the commit message.

@edopao edopao merged commit ea61659 into GridTools:main Dec 4, 2024
31 checks passed
@edopao edopao deleted the dace-gtir-test branch December 4, 2024 14:36
philip-paul-mueller added a commit that referenced this pull request Dec 4, 2024
The [initial version](#1594) of
the optimization pipeline only contained a rough draft.
Currently this PR contains a copy of the map fusion transformations from
DaCe that are currently under
[review](spcl/dace#1629). As soon as that PR is
merged and DaCe was updated in GT4Py these files will be deleted.

This PR collects some general improvements:
- [x] More liberal `LoopBlocking` transformation (with tests).
- [x] Incorporate `MapFusionParallel` 
- [x] Using of `can_be_applied_to()` as soon as DaCe is updated
(`TrivialGPUMapElimination`, `SerialMapPromoter`).
- [x] Looking at strides that the Lowering generates. (Partly done)

However, it still uses MapFusion implementation that ships with GT4Py
and not the one in DaCe.


Note:
Because of commit 60e4226 this PR must be merged after
[PR1768](#1768).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants